После завершения этого раздела вы сможете:
расширить группу томов с помощью команд pvcreate и vgextend,а затем проверить результаты с помощью команды vgdisplay;
уменьшить группу томов с помощью команд pvmove и vgreduce;
расширить логический том с помощью команды lvextend;
изменить размер файловых систем XFS с помощью команды xfs_growfs;
XFS
изменить размер файловых систем ext4 с помощью команды resize2fs.
ext4
Вы можете увеличить дисковое пространство в группе томов, добавив дополнительные физические тома. Эта процедура называется расширением группы томов. Затем можно назначить логическим томам новые физические экстенты из дополнительных физических томов.
Неиспользуемые физические тома можно удалить из группы томов. Эта процедура называется уменьшением группы томов. Сначала необходимо с помощью команды pvmove переместить данные из экстентов одного физического тома в экстенты других томов группы. Например, если необходимо заменить старый или медленный диск, можно добавить новый диск в существующую группу томов, переместить данные со старого диска на новый, а затем удалить старый диск из группы томов. Это можно сделать, не прерывая использования логических томов в группе.
В следующих примерах используется устройство vdb и его разделы для демонстрации команд LVM. На практике используйте соответствующие устройства для диска и разделов диска в своей системе.
Расширение группы томов
Процедура расширения группы томов состоит из следующих шагов.
Подготовка физического устройства и создание физического тома
Как и в случае создания новой группы томов, необходимо создать и подготовить новый раздел для использования в качестве физического тома, если это не было сделано ранее.
[root@host ~]# parted -s /dev/vdb mkpart primary 1027MiB 1539MiB [root@host ~]# parted -s /dev/vdb set 3 lvm on [root@host ~]# pvcreate /dev/vdb3
[root@host ~]#
parted -s /dev/vdb mkpart primary 1027MiB 1539MiB
parted -s /dev/vdb set 3 lvm on
pvcreate /dev/vdb3
Создавать физический том необходимо, только если нет свободных физических томов для расширения группы томов.
Используйте команду vgextend, чтобы добавить новый физический том в группу томов. Используйте имя группы томов и имя устройства физического тома в качестве аргументов в команде vgextend.
[root@host ~]# vgextend vg01 /dev/vdb3
vgextend vg01 /dev/vdb3
Группа томов vg01 будет расширена на размер физического тома /dev/vdb3.
vg01
/dev/vdb3
Проверка доступности нового пространства
Используйте команду vgdisplay, чтобы подтвердить доступность дополнительных физических экстентов. Изучите поле Free PE / Size в выводе. Значение должно быть отличным от нуля.
Free PE / Size
[root@host ~]# vgdisplay vg01 --- Volume group --- VG Name vg01 ...output omitted... Free PE / Size 178 / 712.00 MiB ...output omitted...
vgdisplay vg01
Уменьшение группы томов
Процедура уменьшения группы томов состоит из следующих шагов.
Перемещение физических экстентов
Используйте команду pvmove PV_DEVICE_NAME, чтобы переместить физические экстенты с удаляемого физического тома в другие физические тома в группе томов. В других физических томах должно быть достаточно свободных экстентов для перемещаемых данных. Для успешного выполнения этой операции необходимо, чтобы в группе было достаточно свободных экстентов и все они находились в других физических томах.
PV_DEVICE_NAME
[root@host ~]# pvmove /dev/vdb3
pvmove /dev/vdb3
Команда перемещает физические экстенты из тома /dev/vdb3 в другие физические тома со свободными физическими экстентами в той же группе томов.
Прежде чем выполнять команду pvmove, создайте резервную копию данных, хранящихся во всех логических томах в группе томов. Неожиданный обрыв питания во время операции может привести к рассогласованию данных в группе томов. А это может привести к потере данных, расположенных в логических томах группы.
Используйте команду vgreduce VG_NAME PV_DEVICE_NAME , чтобы удалить физический том из группы томов.
VG_NAME
[root@host ~]# vgreduce vg01 /dev/vdb3
vgreduce vg01 /dev/vdb3
Физический том /dev/vdb3 будет удален из группы vg01 и может быть добавлен в другую группу томов. Кроме того, можно использовать команду pvremove, чтобы навсегда прекратить использование устройства как физического тома.
Одно из преимуществ логических томов заключается в возможности увеличивать их размер без прерывания работы. Свободные физические экстенты в группе томов можно добавить в логический том для увеличения его размера, а затем использовать для расширения соответствующей файловой системы.
Расширение логического тома
Процедура расширения логического тома состоит из следующих шагов.
Проверка наличия свободного пространства в группе томов
Используйте команду vgdisplay, чтобы убедиться в наличии достаточного количества свободных физических экстентов.
Изучите поле Free PE / Size в выводе. Убедитесь, что в группе томов достаточно свободного места для расширения логического тома. Если свободного места недостаточно, расширьте группу томов. См. «Расширение и уменьшение группы томов».
Используйте команду lvextendLV_DEVICE_NAME, чтобы расширить логический том.
LV_DEVICE_NAME
[root@host ~]# lvextend -L +300M /dev/vg01/lv01
lvextend -L +300M /dev/vg01/lv01
Размер логического тома lv01 будет увеличен на 300 МиБ. Обратите внимание на символ плюса (+) перед размером. Его наличие означает добавление значения к существующему размеру. Если его нет, значение указывает на окончательный размер логического тома.
lv01
Как и в случае с командой lvcreate, для указания размера можно использовать разные методы. Опция -l принимает в качестве аргумента количество физических экстентов. Опция -L принимает размер в байтах, мебибайтах, гибибайтах и т. д.
-l
-L
Далее приведены некоторые примеры расширения логических томов.
Таблица 7.1. Примеры расширения логических томов
Изменение размера логического тома ровно до 128 экстентов.
Добавление 128 экстентов к текущему размеру логического тома.
Изменение размера логического тома ровно до 128 МиБ.
Добавление 128 МиБ к текущему размеру логического тома.
Добавление 50 % текущего свободного пространства в группе томов в логический том.
Расширение файловой системы
С помощью команды xfs_growfs mountpoint увеличьте размер файловой системы, чтобы она заняла расширенный логический том. При использовании команды xfs_growfs целевая файловая система уже должна быть смонтирована. Вы можете продолжать пользоваться операционной системой, пока выполняется изменение размера.
mountpoint
[root@host ~]# xfs_growfs /mnt/data
xfs_growfs /mnt/data
Распространенная ошибка — выполнить команду lvextend, но не выполнить xfs_growfs. Вместо последовательного выполнения двух описанных выше шагов допускается можно команду lvextend с опцией -r. Размер файловой системы будет изменен после расширения логического тома с помощью fsadm(8). Команда работает с различными файловыми системами.
-r
Проверка нового размера смонтированной файловой системы
[root@host ~]# df -h /mountpoint
df -h /mountpoint
/mountpoint
Шаги по расширению логического тома на основе ext4 практически не отличаются от шагов для логического тома на основе XFS, за исключением изменения размера файловой системы. Изучите «Расширение логического тома и файловой системы XFS».
Используйте команду vgdisplay VGNAME, чтобы убедиться в наличии достаточного количества свободных физических экстентов в группе томов.
VGNAME
Используйте команду lvextend -l +extents /dev/vgname/lvname, чтобы расширить логический том /dev/vgname/lvname на указанное число экстентов.
extents
vgname/lvname
экстентов
С помощью команды resize2fs /dev/vgname/lvname увеличьте размер файловой системы, чтобы она заняла новый расширенный логический том. Пока выполняется команда расширения, файловую систему можно смонтировать и использовать. Для отслеживания хода выполнения операции по изменению размера можно добавить опцию -p.
-p
[root@host ~]# resize2fs /dev/vg01/lv01
resize2fs /dev/vg01/lv01
Основное различие между xfs_growfs и resize2fs в том, какой аргумент передается для идентификации файловой системы. xfs_growfs принимает точку монтирования, а resize2fs — имя логического тома.
Логические тома, отформатированные как области подкачки, тоже можно расширить. Но в данном случае процедура отличается от расширения файловой системы, например ext4 или XFS. Логические тома, отформатированные под файловую систему, можно расширять динамически, не прерывая их работы. Логические тома, отформатированные под область подкачки, перед расширением необходимо отключить.
Используйте команду vgdisplay vgname, чтобы убедиться в наличии достаточного количества свободных физических экстентов.
vgname
Деактивация области подкачки
Используйте команду swapoff -v /dev/vgname/lvname, чтобы деактивировать область подкачки на логическом томе.
В системе должно быть достаточно свободной памяти или места в области подкачки, чтобы можно было добавить страницы из деактивируемой области подкачки на логическом томе.
Форматирование логического тома под область подкачки
Используйте команду mkswap /dev/vgname/lvname, чтобы отформатировать весь логический том под область подкачки.
Активация области подкачки
Используйте команду swapon -va /dev/vgname/lvname, чтобы активировать область подкачки на логическом томе.
Man-страницы lvm(8), pvcreate(8), pvmove(8), vgdisplay(8), vgextend(8), vgreduce(8), vgdisplay(8), vgextend(8), vgreduce(8), lvextend(8), fdisk(8), gdisk(8), parted(8), partprobe(8), xfs_growfs(8), resize2fs(8), swapoff(8), swapon(8) и mkswap(8)